Direct memory access (DMA) refers to a technology that allows hardware subsystems to access system memory, e.g., random access memory, independently of the central processing unit or processor. In the case of a circuit such as an accelerator circuit, a DMA circuit is able to fetch data from system memory and provide the fetched data to the accelerator circuit. Typically, the DMA circuit streams the fetched data to the accelerator circuit.
A multi-channel DMA circuit is able to fetch data for multiple different channels and stream the fetched data to the accelerator circuit. In the multi-channel case, however, the DMA circuit fetches the entirety of the data for a first channel and then streams the first channel data to the accelerator circuit. Only when the entirety of the first data is fetched does the DMA circuit begin to fetch the data for the second channel. The DMA circuit then fetches the entirety of the data for the second channel and then streams the second channel data to the accelerator circuit. While the data is streamed to the accelerator, the DMA circuit implements the streaming one channel at a time.